package com.relytosoft.mizar.media.camera.api.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.relytosoft.dubhe.common.core.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;


/**
 * @author lj
 */
@TableName("VID_CAMERA_BASE")
@ApiModel("Base")
public class CameraBase extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @TableId(value = "ID", type = IdType.AUTO)
    @ApiModelProperty(value = "主键", required = true)
    private Integer id;

    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称", required = true)
    @TableField("NAME")
    private String name;

    /**
     * 区域ID
     */
    @ApiModelProperty(value = "区域ID", required = true)
    @TableField("DISTRICT_ID")
    @NotNull(message = "区域ID必填")
    private Integer districtId;

    /**
     * 设备编码
     */
    @ApiModelProperty(value = "设备编码", required = true)
    @TableField("CODE")
    private String code;

    /**
     * 设备类型
     */
    @ApiModelProperty(value = "设备类型")
    @TableField("CAMERA_TYPE_ID")
    private Integer cameraTypeId;

    /**
     * 接入协议
     */
    @ApiModelProperty(value = "接入协议", required = true)
    @TableField("PROTOCOL_TYPE")
    private Integer protocolType;

    /**
     * IP地址
     */
    @ApiModelProperty(value = "IP地址")
    @TableField("IP")
    private String ip;

    /**
     * 端口
     */
    @ApiModelProperty(value = "端口")
    @TableField("PORT")
    private Integer port;

    /**
     * 设备账号
     */
    @ApiModelProperty(value = "设备账号")
    @TableField("USER_NAME")
    private String userName;

    /**
     * 登录密码
     */
    @ApiModelProperty(value = "登录密码")
    @TableField("PASSWORD")
    private String password;

    /**
     * 设备厂商
     */
    @ApiModelProperty(value = "设备厂商")
    @TableField("CAMERA_VENDOR")
    private String cameraVendor;

    /**
     * 设备型号
     */
    @ApiModelProperty(value = "设备型号")
    @TableField("CAMERA_MODEL")
    private String cameraModel;

    /**
     * 设备序列号
     */
    @ApiModelProperty(value = "设备序列号")
    @TableField("CAMERA_SN")
    private String cameraSn;

    /**
     * 设备版本号
     */
    @ApiModelProperty(value = "设备版本号")
    @TableField("CAMERA_VERSION")
    private String cameraVersion;

    /**
     * 设备能力集
     */
    @ApiModelProperty(value = "设备能力集")
    @TableField("ABILITY")
    private String ability;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("REMARK")
    private String remark;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    @TableField("STATUS")
    private Integer status;


    @ApiModelProperty(value = "完整路径")
    @TableField(exist = false)
    private String route;

    /**
     * 用于和设备编码对应
     */
    @TableField(exist = false)
    private String encodeDevIndexCode;

    @TableField(exist = false)
    private String regionIndexCode;

    @ApiModelProperty(value = "第三方平台设备编码")
    @TableField(exist = false)
    private String platformCameraCode;

    @ApiModelProperty(value = "三方平台")
    @TableField(exist = false)
    private String platformName;

    public String getPlatformName() {
        return platformName;
    }

    public void setPlatformName(String platformName) {
        this.platformName = platformName;
    }

    public String getPlatformCameraCode() {
        return platformCameraCode;
    }

    public void setPlatformCameraCode(String platformCameraCode) {
        this.platformCameraCode = platformCameraCode;
    }

    public String getEncodeDevIndexCode() {
        return encodeDevIndexCode;
    }

    public String getRegionIndexCode() {
        return regionIndexCode;
    }

    public void setRegionIndexCode(String regionIndexCode) {
        this.regionIndexCode = regionIndexCode;
    }

    public void setEncodeDevIndexCode(String encodeDevIndexCode) {
        this.encodeDevIndexCode = encodeDevIndexCode;
    }

    public String getRoute() {
        return route;
    }


    public void setRoute(String route) {
        this.route = route;
    }

    /**
     * 获得
     */
    public Integer getId() {
        return this.id;
    }

    /**
     * 设置
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获得设备名称
     */
    public String getName() {
        return this.name;
    }

    /**
     * 设置设备名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获得区域ID
     */
    public Integer getDistrictId() {
        return this.districtId;
    }

    /**
     * 设置区域ID
     */
    public void setDistrictId(Integer districtId) {
        this.districtId = districtId;
    }

    /**
     * 获得设备编码
     */
    public String getCode() {
        return this.code;
    }

    /**
     * 设置设备编码
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * 获得设备类型
     */
    public Integer getCameraTypeId() {
        return this.cameraTypeId;
    }

    /**
     * 设置设备类型
     */
    public void setCameraTypeId(Integer cameraTypeId) {
        this.cameraTypeId = cameraTypeId;
    }

    /**
     * 获得接入协议
     */
    public Integer getProtocolType() {
        return this.protocolType;
    }

    /**
     * 设置接入协议
     */
    public void setProtocolType(Integer protocolType) {
        this.protocolType = protocolType;
    }

    /**
     * 获得IP地址
     */
    public String getIp() {
        return this.ip;
    }

    /**
     * 设置IP地址
     */
    public void setIp(String ip) {
        this.ip = ip;
    }

    /**
     * 获得端口
     */
    public Integer getPort() {
        return this.port;
    }

    /**
     * 设置端口
     */
    public void setPort(Integer port) {
        this.port = port;
    }

    /**
     * 获得设备账号
     */
    public String getUserName() {
        return this.userName;
    }

    /**
     * 设置设备账号
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * 获得登录密码
     */
    public String getPassword() {
        return this.password;
    }

    /**
     * 设置登录密码
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获得设备厂商
     */
    public String getCameraVendor() {
        return this.cameraVendor;
    }

    /**
     * 设置设备厂商
     */
    public void setCameraVendor(String cameraVendor) {
        this.cameraVendor = cameraVendor;
    }

    /**
     * 获得设备型号
     */
    public String getCameraModel() {
        return this.cameraModel;
    }

    /**
     * 设置设备型号
     */
    public void setCameraModel(String cameraModel) {
        this.cameraModel = cameraModel;
    }

    /**
     * 获得设备序列号
     */
    public String getCameraSn() {
        return this.cameraSn;
    }

    /**
     * 设置设备序列号
     */
    public void setCameraSn(String cameraSn) {
        this.cameraSn = cameraSn;
    }

    /**
     * 获得设备版本号
     */
    public String getCameraVersion() {
        return this.cameraVersion;
    }

    /**
     * 设置设备版本号
     */
    public void setCameraVersion(String cameraVersion) {
        this.cameraVersion = cameraVersion;
    }

    /**
     * 获得设备能力集
     */
    public String getAbility() {
        return this.ability;
    }

    /**
     * 设置设备能力集
     */
    public void setAbility(String ability) {
        this.ability = ability;
    }

    /**
     * 获得备注
     */
    public String getRemark() {
        return this.remark;
    }

    /**
     * 设置备注
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * 获得状态
     */
    public Integer getStatus() {
        return this.status;
    }

    /**
     * 设置状态
     */
    public void setStatus(Integer status) {
        this.status = status;
    }


    @Override
    public String toString() {
        return "CameraBase{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", districtId=" + districtId +
                ", code='" + code + '\'' +
                ", cameraTypeId=" + cameraTypeId +
                ", protocolType=" + protocolType +
                ", ip='" + ip + '\'' +
                ", port=" + port +
                ", userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                ", cameraVendor='" + cameraVendor + '\'' +
                ", cameraModel='" + cameraModel + '\'' +
                ", cameraSn='" + cameraSn + '\'' +
                ", cameraVersion='" + cameraVersion + '\'' +
                ", ability='" + ability + '\'' +
                ", remark='" + remark + '\'' +
                ", status=" + status +
                ", route='" + route + '\'' +
                ", encodeDevIndexCode='" + encodeDevIndexCode + '\'' +
                ", regionIndexCode='" + regionIndexCode + '\'' +
                ", platformCameraCode='" + platformCameraCode + '\'' +
                ", platformName='" + platformName + '\'' +
                '}';
    }
}